<!DOCTYPE HTML>
<script src="../resources/gc.js"></script>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>

<!--

Accessibility Object Model
Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
Spec: https://wicg.github.io/aom/spec/

-->

<script>
if (window.internals)
    internals.runtimeFlags.accessibilityObjectModelEnabled = true;
</script>

<div role="slider" id="slider" aria-valuenow="5"></div>

<script>
test(function(t) {
    var node = document.getElementById("slider");
    var axNode = accessibilityController.accessibleElementById("slider");
    assert_equals(axNode.intValue, 5);
    assert_equals(node.accessibleNode.valueNow, null);
    node.accessibleNode.valueNow = 9;
    assert_equals(axNode.intValue, 5);
    node.accessibleNode.valueNow = null;
    assert_equals(axNode.intValue, 5);
    assert_equals(node.accessibleNode.valueNow, null);
}, "Boolean AOM properties do not reflect ARIA, and can be cleared.");
</script>

<div role="slider" id="slider2"></div>

<script>
test(function(t) {
    var node = document.getElementById("slider2");
    var axNode = accessibilityController.accessibleElementById("slider2");
    assert_equals(axNode.intValue, 50);
    assert_equals(axNode.minValue, 0);
    assert_equals(axNode.maxValue, 100);
    node.accessibleNode.valueNow = 33;
    node.accessibleNode.valueMin = -100;
    node.accessibleNode.valueMax = 100;;
    assert_equals(axNode.intValue, 50);
    assert_equals(axNode.minValue, 0);
    assert_equals(axNode.maxValue, 100);
}, "Range values in accessible node of slider.");
</script>

<div role="spinbutton" id="spinbutton"></div>

<script>
test(function(t) {
    var node = document.getElementById("spinbutton");
    var axNode = accessibilityController.accessibleElementById("spinbutton");
    assert_equals(axNode.intValue, 0);
    assert_equals(axNode.minValue, 0);
    assert_equals(axNode.maxValue, 0);
    node.accessibleNode.valueNow = 33;
    node.accessibleNode.valueMin = -100;
    node.accessibleNode.valueMax = 100;;
    assert_equals(axNode.intValue, 0);
    assert_equals(axNode.minValue, 0);
    assert_equals(axNode.maxValue, 0);
}, "Range values in accessible node of spinbutton.");
</script>
